#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
修复路径问题的脚本
解决Windows系统中路径包含空格导致的文件读取问题
"""

import os
import sys

def fix_path_issue():
    """修复路径问题"""
    print("=" * 60)
    print("路径问题修复脚本")
    print("=" * 60)
    
    # 获取当前脚本所在目录
    current_dir = os.path.dirname(os.path.abspath(__file__))
    print(f"当前目录: {current_dir}")
    
    # 检查路径中是否包含空格
    if " " in current_dir:
        print("⚠️  警告：当前路径包含空格，这可能导致文件读取问题")
        print("建议：将项目移动到不包含空格的路径")
        
        # 尝试使用绝对路径来访问文件
        test_file = os.path.join(current_dir, "DataDriven", "global", "send_code.yaml")
        print(f"测试文件路径: {test_file}")
        
        if os.path.exists(test_file):
            print("✓ 文件存在，路径问题已解决")
            return True
        else:
            print("✗ 文件不存在，需要进一步修复")
            return False
    else:
        print("✓ 路径正常，不包含空格")
        return True

def create_path_fix():
    """创建路径修复方案"""
    print("\n" + "=" * 60)
    print("路径修复方案")
    print("=" * 60)
    
    # 方案1：使用相对路径
    print("方案1：使用相对路径")
    print("在代码中使用相对路径而不是绝对路径")
    
    # 方案2：使用os.path.normpath
    print("\n方案2：使用os.path.normpath标准化路径")
    print("将所有路径都通过os.path.normpath处理")
    
    # 方案3：移动项目
    print("\n方案3：移动项目到无空格路径")
    print("建议路径：D:\\HOKInterfaceAutoTest 或 C:\\HOKInterfaceAutoTest")
    
    return True

def test_file_access():
    """测试文件访问"""
    print("\n" + "=" * 60)
    print("文件访问测试")
    print("=" * 60)
    
    current_dir = os.path.dirname(os.path.abspath(__file__))
    
    # 测试几个关键文件
    test_files = [
        "DataDriven/global/send_code.yaml",
        "DataDriven/LiveManagement/courseware_list/courseware_list.yaml",
        "config/config.py",
        "core/YamlLoad.py"
    ]
    
    for file_path in test_files:
        full_path = os.path.join(current_dir, file_path)
        if os.path.exists(full_path):
            print(f"✓ {file_path} - 存在")
        else:
            print(f"✗ {file_path} - 不存在")
    
    return True

if __name__ == "__main__":
    print("开始修复路径问题...")
    
    # 检查路径问题
    path_ok = fix_path_issue()
    
    # 创建修复方案
    create_path_fix()
    
    # 测试文件访问
    test_file_access()
    
    print("\n" + "=" * 60)
    if path_ok:
        print("✓ 路径检查完成，建议按照上述方案进行修复")
    else:
        print("✗ 发现路径问题，请按照上述方案进行修复")
    print("=" * 60)
